package ar.com.pasae.backend.aviso;

import ar.com.pasae.backend.usuario.Usuario;

public class AvisoInmobiliario {

//Datos de ubicacion de la propiedad representada por el Aviso
	private String pais;
	private String provincia;
	private String localidad;
	private String calle;
	private String alturaCalle;
	private String piso;
	private String departamento;
	private String codigoPostal;
	
//Datos de el inmueble publicado en el aviso
	private String precioInmueble;
	private String ambientes;
	private String tipoInmueble; //(Casa,Departamento,Lote,Cochera,Oficina)
	
	
//Dias que va  aestar publicado el aviso 
	private int cantDias;
	
	private Estado estado;
	private Usuario usuario;
//------------------------------------------------------------//	
	
/*  
 * Constructores
 */
	public AvisoInmobiliario(){
		
	}
	
	public AvisoInmobiliario(Usuario usuario, int cantDias){
		this.setUsuario(usuario);
		this.setCantDias(cantDias);
		this.setEstado(new Inactivo(cantDias));
	}
	
	public AvisoInmobiliario(Usuario usuario, int cantDias, String pais, String Provincia, String localidad, String calle, String alturaCalle, String piso, String departamento, String codigoPostal){
		this(usuario,cantDias);
		this.setPais(pais);
		this.setProvincia(Provincia);
		this.setLocalidad(localidad);
		this.setCalle(calle);
		this.setAlturaCalle(alturaCalle);
		this.setPiso(piso);
		this.setDepartamento(departamento);
		this.setCodigoPostal(codigoPostal);
		usuario.getAvisos().add(this);
		
	}
	
	
/*
 * Setters y Getters
 */

	public String getPais() {
		return pais;
	}

	public void setPais(String pais) {
		this.pais = pais;
	}

	public String getProvincia() {
		return provincia;
	}

	public void setProvincia(String provincia) {
		this.provincia = provincia;
	}

	public String getLocalidad() {
		return localidad;
	}

	public void setLocalidad(String localidad) {
		this.localidad = localidad;
	}

	public String getCalle() {
		return calle;
	}

	public void setCalle(String calle) {
		this.calle = calle;
	}

	public String getAlturaCalle() {
		return alturaCalle;
	}

	public void setAlturaCalle(String alturaCalle) {
		this.alturaCalle = alturaCalle;
	}

	public String getPiso() {
		return piso;
	}

	public void setPiso(String piso) {
		this.piso = piso;
	}

	public String getDepartamento() {
		return departamento;
	}

	public void setDepartamento(String departamento) {
		this.departamento = departamento;
	}

	public String getCodigoPostal() {
		return codigoPostal;
	}

	public void setCodigoPostal(String codigoPostal) {
		this.codigoPostal = codigoPostal;
	}

	public int getCantDias() {
		return cantDias;
	}

	public void setCantDias(int cantDias) {
		this.cantDias = cantDias;
	}

	public Estado getEstado() {
		return estado;
	}

	public void setEstado(Estado estado) {
		this.estado = estado;
	}

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
	
public String getPrecioInmueble() {
		return precioInmueble;
	}

	public void setPrecioInmueble(String precioInmueble) {
		this.precioInmueble = precioInmueble;
	}

	public String getAmbientes() {
		return ambientes;
	}

	public void setAmbientes(String ambientes) {
		this.ambientes = ambientes;
	}

	public String getTipoInmueble() {
		return tipoInmueble;
	}

	public void setTipoInmueble(String tipoInmueble) {
		this.tipoInmueble = tipoInmueble;
	}

	/*
 * Metodos
 */
	public void pagarAviso(){
		this.setEstado(new Activo(this.getCantDias()));
	}
	
	public void destacarAviso(int cantDias){
		this.getEstado().destacarAviso(cantDias,this);
	}
	
}
